#ifndef QSAMPLESMHSWIDGET_H
#define QSAMPLESMHSWIDGET_H

#include <QObject>
#include <QSystemNetworkInfo>
#include <QPixmap>

#include "qhswidget.h"

using namespace QtMobility;
#define KNumberOfMeasurements 23

class QSampleSMHSWidget : public QObject
{
    Q_OBJECT
public:
    explicit QSampleSMHSWidget(QObject *parent = 0);
    ~QSampleSMHSWidget();
    void RegisterWidget();
private:
    void SignalLevelChanged(int aBars);
    void ChangeWidgetValues( );
    void DrawImage();
    void DrawImageL();
signals:

public slots:
    void handleEvent(QHSWidget*, QHSEvent aEvent );
    void handleItemEvent(QHSWidget*, QString aTemplateItemName,
                         QHSItemEvent aEvent);
    void networkSignalStrengthChanged(QSystemNetworkInfo::NetworkMode, int);
    void RunAnimationTest();
private:
    QHSWidget* iWidget;


    /**
     * Array of KNumberOfMeasurements integers that will store the signal
     * measurements that will be visualized on this widget
     */
    int iMeasurements[KNumberOfMeasurements];

    /**
      * If set ETrue it indicates that the widget is currently selected on
      * the home screen and that the home screen is in the foreground, thus
      * the widget data can and should be updated.
      */
    bool iCanPublish;

    /**
      * If set ETrue it signals that widget's data was changed since the
      * last publishing and the widget state did not allow the new data to be
      * publised.
      */
    bool iNeedUpdate;

    QSystemNetworkInfo* iSystemNetworkInfo;
    CFbsBitmap* iFbsBitmap;

};

#endif // QSAMPLESMHSWIDGET_H
